package types

import "eino-script/engine/entity"

// 定义枚举类型

// 枚举值

type ConditionType string

const (
	ConditionTypeCustom    ConditionType = "custom"
	ConditionTypeNeedTools ConditionType = "needTools"
	ConditionTypeDefault   ConditionType = "default"
)

type Point struct {
	X int
	Y int
}

type NodeCfg struct {
	Id    string                 `mapstructure:"id"`
	Type  entity.NodeType        `mapstructure:"type"`
	Name  string                 `mapstructure:"name"`
	Attrs map[string]interface{} `mapstructure:",remain"`
}

type EdgeCfg struct {
	SourceNodeId string `mapstructure:"source"`
	TargetNodeId string `mapstructure:"target"`
	SourceHandle string `mapstructure:"sourceHandle"`
	TargetHandle string `mapstructure:"targetHandle"`
}

type McpServerCfg struct {
	Type  string                 `mapstructure:"type"`
	Name  string                 `mapstructure:"name"`
	Attrs map[string]interface{} `mapstructure:",remain"`
}

type Config struct {
	Id    uint      `mapstructure:"id"`
	Nodes []NodeCfg `mapstructure:"nodes"`
	Edges []EdgeCfg `mapstructure:"edges"`
}
